package com.nineclock.system.SysCompanyContactConfigController;

import com.nineclock.attendance.dto.DepartmentOrUserSimpleDTO;
import com.nineclock.common.entity.PageResult;
import com.nineclock.common.entity.Result;
import com.nineclock.system.dto.SysCompanyUserDTO;
import com.nineclock.system.dto.SysDepartmentDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

@Api(value = "组织管理接口",tags = "系统服务")
public interface OrganizationControllerApi {

    @ApiOperation("组织架构获取所有员工")
    public Result <List<SysCompanyUserDTO>> listSysCompanyUser();

    @ApiOperation("PC-获取组织架构列表(左侧菜单)")
    public Result<List<SysDepartmentDTO>> queryDepartmentList();

    @ApiOperation("分页查询部门下的员工数据列表")
    public Result<PageResult<SysCompanyUserDTO>> members(Integer page,Integer pageSize,String keyword, Long departmentId);

    @ApiOperation("直接导入企业员工")
    public Result uploadExcel (MultipartFile excelFile) throws IOException;

    @ApiOperation("查询所有顶级部门的id")
    public Result<List<Long>> queryDepartmentIds();
    @ApiOperation("获取所有部门下的所有员工")
    public Result <Integer> queryUserCountByDepartmentIds(List<Long> departmentIds);

    @ApiOperation(value = "根据部门ID查询子部门及员工列表")
    public Result<List<DepartmentOrUserSimpleDTO>> querySimpleDepartment(Long departmentId, Integer includeMember);

}
